NOTE
删除排序链表中的重复元素 II
删除排序链表中的重复元素 II的 LeetCode 解题笔记。
这是历史学习笔记,可能存在过时或不完整的理解。
1. 题目描述
给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。
2. 思路
对比删除排序链表中的重复元素.md多了个ifelse判断
3. 实现
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func deleteDuplicates(head *ListNode) *ListNode {
if head == nil || head.Next == nil {
return head
}
dummyHead := &ListNode{}
d := dummyHead
current := head
for current != nil {
next := current.Next
current.Next = nil
if next != nil && current.Val == next.Val {
for next != nil && current.Val == next.Val {
next = next.Next
}
} else {
d.Next = current
d = d.Next
}
current = next
}
return dummyHead.Next
}
讨论
使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看